﻿using System.Collections.Generic;
using System.ComponentModel.Composition;

namespace MapInfo.Toolbox.Core
{
    /// <summary>
    /// A factory that can used to create modules at runtime that the MapInfo.Toolbox will load.
    /// </summary>
    [InheritedExport(typeof(IModuleFactory))]
    public interface IModuleFactory
    {
        /// <summary>
        /// Creates modules that will be shown in the MapInfo.Module UI.
        /// </summary>
        /// <returns>A <see cref="IEnumerable{IModule}"/> containing the modules to be loaded.</returns>
        IEnumerable<IToolboxModule> CreateModules();
    }
}
